/**
 * 
 */
package br.idez.idezJet.control.beans;

import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

import br.idez.idezJet.control.util.FacesUtil;
import br.idez.idezJet.control.util.GerenciadorSessao;
import br.idez.idezJet.integracao.vo.Usuario;
import br.idez.idezJet.negocio.service.UsuarioService;
import br.idez.idezJet.util.Encriptacao;

/**
 * @author Moacir Junior
 * 
 */
@ManagedBean
@SessionScoped
public class LoginBean extends IdezJetBean {

	private Usuario usuario;
	@EJB
	private UsuarioService usuarioService;
	private boolean renderedLogin;

	public LoginBean() {
		usuario = new Usuario();
		renderedLogin = true;
	}

	public String autenticar() {

		try {
			
			usuario.setSenha(Encriptacao.encripta(usuario.getSenha()));
			usuario = usuarioService
					.consultarUsuarioSenha(usuario);
			if (usuario == null) {
				FacesUtil.registrarAviso("login.invalido");
				return null;
			}

			GerenciadorSessao.abrirSessao(usuario);

		} catch (Exception e) {
			FacesUtil.registrarErro("erro.login");
			renderedLogin = true;
			return null;
		}
		renderedLogin = false;
		return "index";
	}

	public String logout() {
		boolean resultado = GerenciadorSessao.fecharSessao();
		if (!resultado) {
			FacesUtil.registrarMensagem("erro.logout");
			renderedLogin = false;
			return null;
		}
		FacesUtil.registrarMensagem("sucesso.logout");
		renderedLogin = true;
		return "index";
	}

	/**
	 * @return the usuario
	 */
	public Usuario getUsuario() {
		return usuario;
	}

	/**
	 * @param usuario
	 *            the usuario to set
	 */
	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}

	/**
	 * @return the renderedLogin
	 */
	public boolean isRenderedLogin() {
		return renderedLogin;
	}

	/**
	 * @param renderedLogin the renderedLogin to set
	 */
	public void setRenderedLogin(boolean renderedLogin) {
		this.renderedLogin = renderedLogin;
	}
}
